// pages/search/index.js
const app = getApp();
const key = app.globalData.key;
const env = app.globalData.env;
const service = app.globalData.service;
const maxDistance = app.globalData.maxDistance;
const contextPath = app.globalData.contextPath;
Page({

    /**
     * 页面的初始数据
     */
    data: {
        xian: '西城区',
        shi: '北京',
        update: '2024-05-20',
        temp: 20,
        tianqi: '晴',
        date1: '2024-05-04',
        showScenicSpots: true,
        scenicSpots: [],
        foods: [],
        currentView: 'scenicSpots', // 初始显示景点
    },

    getweather: function (e) {
        var that = this
        wx.getLocation({
            type: 'wgs84',
            success(res) {
                const latitude = res.latitude
                const longitude = res.longitude
                const key = 'f626dc0f8a4a42ec86edd789ecaf4ce5'
                wx.request({
                    url: `https://geoapi.qweather.com/v2/city/lookup?location=${longitude},${latitude}&key=${key}`,
                    success(res) {
                        console.log(res.data)
                        console.log(res.data.location[0].name)
                        that.setData({
                            shi: res.data.location[0].adm2,
                            xian: res.data.location[0].name,
                        })
                        wx.request({
                            url: `https://devapi.qweather.com/v7/weather/now?location=${longitude},${latitude}&key=${key}`,
                            success(res) {
                                console.log(res.data)
                                that.setData({
                                    temp: res.data.now.temp,
                                    tianqi: res.data.now.text,
                                    update: res.data.updateTime.slice(0, 10)
                                })
                            }
                        })
                    }
                })
            }
        })
    },

    /**
     * 生命周期函数--监听页面加载
     */
    onLoad: async function (options) {
        // 页面加载时获取初始数据  
        await this.loadCurrentLocation();
        // 获取天气
        this.getweather()
        var date = new Date();
        var Y = date.getFullYear();
        var M = (date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) : date.getMonth() + 1);
        var D = date.getDate() < 10 ? '0' + date.getDate() : date.getDate();
        this.setData({
            date1: Y + "-" + M + "-" + D
        })
    },
    async loadCurrentLocation() {
        wx.getLocation({
            type: 'wgs84',
            success: (res) => {
                const latitude = res.latitude
                const longitude = res.longitude
                this.setData({
                    latitude,
                    longitude
                }, async () => {
                    // 数据已经更新，现在可以安全地使用 latitude 和 longitude 了
                    this.fetchfoods();
                    this.fetchscenicSpots();
                })
            },
            fail(res) {
                console.log(res)
            }

        })
    },

    fetchfoods: async function () {

        const latitude = this.data.latitude;
        const longitude = this.data.longitude;


        // 构造请求 URL（根据您的 API 接口进行调整）  
        const url = `${contextPath}/food?longitude=${longitude}&latitude=${latitude}&distance=${maxDistance}&rec=1`; // 替换为您的 API 路径  

        try {
            const res = await wx.cloud.callContainer({
                config: {
                    env: env, // 微信云托管的环境 ID，根据实际情况填写
                },
                path: url, // 业务自定义路径和参数
                method: 'GET', // 请求方法
                header: {
                    'X-WX-SERVICE': service, // 你的云托管服务名称
                    // 可以添加其他需要的 header
                },
                // 可以添加请求的 body，GET 请求通常不需要
            });
            console.log('获取到的数据结果: ', res); // 处理获取到的数据

            // this.saveDataToFile(res.data); // 保存数据到文件

            if (res.data && Array.isArray(res.data)) {
                // 在 storeList 中的每个条目中，将 distance 字段转化为 km 单位并保留两位小数
                const processedData = res.data.map(item => {
                    item.distance = (item.distance / 1000).toFixed(2);
                    return item;
                });

                this.setData({
                    foods: processedData
                })
            } else {
                // 处理错误或无效数据的情况  
                wx.showToast({
                    title: '无法获取美食列表',
                    icon: 'none',
                    duration: 2000
                });
            }
        } catch (error) {
            console.error('请求失败:', error);
            wx.showToast({
                title: '网络错误',
                icon: 'none',
                duration: 2000
            });
            // 设置一个空数组或其他默认状态  
            this.setData({
                foods: []
            });
        }
    },
    fetchscenicSpots: async function () {
        const latitude = this.data.latitude;
        const longitude = this.data.longitude;

        // 构造请求 URL（根据您的 API 接口进行调整）  
        const url = `${contextPath}/scene?longitude=${longitude}&latitude=${latitude}&distance=${maxDistance}&rec=1`; // 替换为您的 API 路径  

        try {
            const res = await wx.cloud.callContainer({
                config: {
                    env: env, // 微信云托管的环境 ID，根据实际情况填写
                },
                path: url, // 业务自定义路径和参数
                method: 'GET', // 请求方法
                header: {
                    'X-WX-SERVICE': service, // 你的云托管服务名称
                    // 可以添加其他需要的 header
                },
                // 可以添加请求的 body，GET 请求通常不需要
            });
            console.log('获取到的数据结果: ', res); // 处理获取到的数据
            // this.saveDataToFile(res.data); // 保存数据到文件

            if (res.data && Array.isArray(res.data)) {
                // 在 storeList 中的每个条目中，将 distance 字段转化为 km 单位并保留两位小数
                const processedData = res.data.map(item => {
                    item.distance = (item.distance / 1000).toFixed(2);
                    return item;
                });

                this.setData({
                    scenicSpots: processedData
                })
            } else {
                // 处理错误或无效数据的情况  
                wx.showToast({
                    title: '无法获取景点列表',
                    icon: 'none',
                    duration: 2000
                });
            }
        } catch (error) {
            console.error('请求失败:', error);
            wx.showToast({
                title: '网络错误',
                icon: 'none',
                duration: 2000
            });
            // 设置一个空数组或其他默认状态  
            this.setData({
                foodList: []
            });
        }
    },
    /**
     * 生命周期函数--监听页面初次渲染完成
     */
    onReady() {

    },

    /**
     * 生命周期函数--监听页面显示
     */
    onShow() {

    },
    //推荐部分切换效果
    switchScens(e) {
        const targetView = e.currentTarget.dataset.view;
        this.setData({
            showScenicSpots: true,
            currentView: 'scenicSpots',
        });
    },
    switchFood(e) {
        // const targetView = e.currentTarget.dataset.view;
        this.setData({
            showScenicSpots: false,
            currentView: 'foods',
        });
    },
    // 跳转到详情页
    goDetail: function (event) {
        console.log(event)
        const item = event.currentTarget.dataset.item;
        if (this.data.showScenicSpots) {
            wx.navigateTo({
                url: '/pages/attraction-detail/attraction-detail?item=' + encodeURIComponent(JSON.stringify(item))
            });
        } else {
            wx.navigateTo({
                url: '/pages/foodDetail/fooddetail?item=' + encodeURIComponent(JSON.stringify(item))
            });
        }

    },
    // 美食诱惑
    goFoodList: function () {
        wx.navigateTo({
            url: '../foodList/foodlist',
        })
    },
    // 酒店推荐
    goHotelList: function () {
        wx.navigateTo({
            url: '../hotel/index',
        })
    },
    // 文脉游踪
    goAttractionList: function () {
        wx.navigateTo({
            url: '../attraction-list/attraction-list',
        })
    },
    // 旅游攻略
    goTravelGuide: function () {
        wx.navigateTo({
            url: '../gonglue/gonglue',
        })
    },

    // 乐购天桥
    goStoreList: function () {
        wx.navigateTo({
            url: '../store/index',
        })
    },

    // 活动预约
    goActivityList: function () {
        wx.navigateTo({
            url: '../activityBooking/activityBooking',
        })
    },

    // 文化场馆
    goFacilitiesList: function () {
        wx.navigateTo({
            url: '../facilityList/facilitylist',
        })
    },

    // 导航导览
    goGuide: function () {
        wx.navigateTo({
            url: '../guide/index',
        })
    },
    goRedList: function () {
        wx.navigateTo({
            url: '../route1/route1',
        })
    },
    goMinsuList: function () {
        wx.navigateTo({
            url: '../route2/route2',
        })
    },
    goYanyiList: function () {
        wx.navigateTo({
            url: '../route3/route3',
        })
    },


    /**
     * 生命周期函数--监听页面隐藏
     */
    onHide() {

    },

    /**
     * 生命周期函数--监听页面卸载
     */
    onUnload() {

    },

    /**
     * 页面相关事件处理函数--监听用户下拉动作
     */
    onPullDownRefresh() {

    },

    /**
     * 页面上拉触底事件的处理函数
     */
    onReachBottom() {

    },

    /**
     * 用户点击右上角分享
     */
    onShareAppMessage() {

    }
})